package com.eastfair.auth.service;

import com.eastfair.auth.entity.Organization;
import com.eastfair.boot.service.SuperCacheService;
import com.eastfair.boot.service.SuperService;
import com.eastfair.auth.entity.OrganizationRole;
import com.eastfair.core.base.R;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 
 * </p>
 *
 * @author ligang
 * @date 2021-08-30
 */
public interface OrganizationRoleService extends SuperCacheService<OrganizationRole> {

    /**
     * 添加组织关联角色
     * @param organizationList 组织集合
     * @param roleIds 角色id集合
     * @return
     */
    R addOrgRole(List<Organization> organizationList, List<Long> roleIds);



    /**
     * 剔除菜单关联角色
     * @param organizationList 组织集合
     * @param roleIds 角色id集合
     * @return
     */
    R removeOrgRole(List<Organization> organizationList,List<Long> roleIds);

    /**
     * 剔除关联的角色
     * @param roleIds 角色id集合
     * @return
     */
    R removeOfRole(List<Long> roleIds);


    /**
     * 查询角色下的信息
     * @param roleIds 角色id集合
     * @return
     */
    List<OrganizationRole> findOfRole(List<Long> roleIds);

    /**
     * 查询组织下的角色
     * @param orgIds 组织id集合
     * @return
     */
    List<OrganizationRole> findOfOrg(List<Long> orgIds);


    /**
     * 条件查询
     * @param orgRole 组织角色实体
     * @param orgIds 组织id集合
     * @param roleIds 角色id集合
     * @return
     */
    List<OrganizationRole> list(OrganizationRole orgRole, List<Long> orgIds, List<Long> roleIds);

    /**
     * 条件查询 緩存
     * @param orgRole 组织角色实体
     * @param orgIds 组织id集合
     * @param roleIds 角色id集合
     * @return
     */
    List<OrganizationRole> listOfCache(OrganizationRole orgRole, List<Long> orgIds, List<Long> roleIds);
}
